Index SDL Key Codes INFO Bookmarks
SDL_KeyModMeaning
KMOD_NONE0 (no modifier is applicable)
KMOD_LSHIFTthe left Shift key is down
KMOD_RSHIFTthe right Shift key is down
KMOD_LCTRLthe left Ctrl (Control) key is down
KMOD_RCTRLthe right Ctrl (Control) key is down
KMOD_LALTthe left Alt key is down
KMOD_RALTthe right Alt key is down
KMOD_LGUIthe left GUI key (often the Windows key) is down
KMOD_RGUIthe right GUI key (often the Windows key) is down
KMOD_NUMthe Num Lock key (may be located on an extended keypad) is down
KMOD_CAPSthe Caps Lock key is down
KMOD_MODEthe AltGr key is down
KMOD_CTRL(KMOD_LCTRL|KMOD_RCTRL)
KMOD_SHIFT(KMOD_LSHIFT|KMOD_RSHIFT)
KMOD_ALT(KMOD_LALT|KMOD_RALT)
KMOD_GUI(KMOD_LGUI|KMOD_RGUI)
Key NameSDL_Scancode ValueSDL_Keycode Value
0SDL_SCANCODE_0SDLK_0
1SDL_SCANCODE_1SDLK_1
2SDL_SCANCODE_2SDLK_2
3SDL_SCANCODE_3SDLK_3
4SDL_SCANCODE_4SDLK_4
5SDL_SCANCODE_5SDLK_5
6SDL_SCANCODE_6SDLK_6
7SDL_SCANCODE_7SDLK_7
8SDL_SCANCODE_8SDLK_8
9SDL_SCANCODE_9SDLK_9
ASDL_SCANCODE_ASDLK_a
AC Back
(the Back key (application control keypad))
SDL_SCANCODE_AC_BACKSDLK_AC_BACK
AC Bookmarks
(the Bookmarks key (application control keypad))
SDL_SCANCODE_AC_BOOKMARKSSDLK_AC_BOOKMARKS
AC Forward
(the Forward key (application control keypad))
SDL_SCANCODE_AC_FORWARDSDLK_AC_FORWARD
AC Home
(the Home key (application control keypad))
SDL_SCANCODE_AC_HOMESDLK_AC_HOME
AC Refresh
(the Refresh key (application control keypad))
SDL_SCANCODE_AC_REFRESHSDLK_AC_REFRESH
AC Search
(the Search key (application control keypad))
SDL_SCANCODE_AC_SEARCHSDLK_AC_SEARCH
AC Stop
(the Stop key (application control keypad))
SDL_SCANCODE_AC_STOPSDLK_AC_STOP
Again
(the Again key (Redo))
SDL_SCANCODE_AGAINSDLK_AGAIN
AltErase
(Erase-Eaze)
SDL_SCANCODE_ALTERASESDLK_ALTERASE
'SDL_SCANCODE_APOSTROPHESDLK_QUOTE
Application
(the Application / Compose / Context Menu (Windows) key )
SDL_SCANCODE_APPLICATIONSDLK_APPLICATION
AudioMute
(the Mute volume key)
SDL_SCANCODE_AUDIOMUTESDLK_AUDIOMUTE
AudioNext
(the Next Track media key)
SDL_SCANCODE_AUDIONEXTSDLK_AUDIONEXT
AudioPlay
(the Play media key)
SDL_SCANCODE_AUDIOPLAYSDLK_AUDIOPLAY
AudioPrev
(the Previous Track media key)
SDL_SCANCODE_AUDIOPREVSDLK_AUDIOPREV
AudioStop
(the Stop media key)
SDL_SCANCODE_AUDIOSTOPSDLK_AUDIOSTOP
BSDL_SCANCODE_BSDLK_b
\SDL_SCANCODE_BACKSLASHSDLK_BACKSLASH
BackspaceSDL_SCANCODE_BACKSPACESDLK_BACKSPACE
BrightnessDown
(the Brightness Down key)
SDL_SCANCODE_BRIGHTNESSDOWNSDLK_BRIGHTNESSDOWN
BrightnessUp
(the Brightness Up key)
SDL_SCANCODE_BRIGHTNESSUPSDLK_BRIGHTNESSUP
CSDL_SCANCODE_CSDLK_c
Calculator
(the Calculator key)
SDL_SCANCODE_CALCULATORSDLK_CALCULATOR
CancelSDL_SCANCODE_CANCELSDLK_CANCEL
CapsLockSDL_SCANCODE_CAPSLOCKSDLK_CAPSLOCK
ClearSDL_SCANCODE_CLEARSDLK_CLEAR
Clear / AgainSDL_SCANCODE_CLEARAGAINSDLK_CLEARAGAIN
,SDL_SCANCODE_COMMASDLK_COMMA
Computer
(the My Computer key)
SDL_SCANCODE_COMPUTERSDLK_COMPUTER
CopySDL_SCANCODE_COPYSDLK_COPY
CrSelSDL_SCANCODE_CRSELSDLK_CRSEL
CurrencySubUnit
(the Currency Subunit key)
SDL_SCANCODE_CURRENCYSUBUNITSDLK_CURRENCYSUBUNIT
CurrencyUnit
(the Currency Unit key)
SDL_SCANCODE_CURRENCYUNITSDLK_CURRENCYUNIT
CutSDL_SCANCODE_CUTSDLK_CUT
DSDL_SCANCODE_DSDLK_d
DecimalSeparator
(the Decimal Separator key)
SDL_SCANCODE_DECIMALSEPARATORSDLK_DECIMALSEPARATOR
DeleteSDL_SCANCODE_DELETESDLK_DELETE
DisplaySwitch
(display mirroring/dual display switch, video mode switch)
SDL_SCANCODE_DISPLAYSWITCHSDLK_DISPLAYSWITCH
Down
(the Down arrow key (navigation keypad))
SDL_SCANCODE_DOWNSDLK_DOWN
ESDL_SCANCODE_ESDLK_e
Eject
(the Eject key)
SDL_SCANCODE_EJECTSDLK_EJECT
EndSDL_SCANCODE_ENDSDLK_END
=SDL_SCANCODE_EQUALSSDLK_EQUALS
Escape
(the Esc key)
SDL_SCANCODE_ESCAPESDLK_ESCAPE
ExecuteSDL_SCANCODE_EXECUTESDLK_EXECUTE
ExSelSDL_SCANCODE_EXSELSDLK_EXSEL
FSDL_SCANCODE_FSDLK_f
F1SDL_SCANCODE_F1SDLK_F1
F10SDL_SCANCODE_F10SDLK_F10
F11SDL_SCANCODE_F11SDLK_F11
F12SDL_SCANCODE_F12SDLK_F12
F13SDL_SCANCODE_F13SDLK_F13
F14SDL_SCANCODE_F14SDLK_F14
F15SDL_SCANCODE_F15SDLK_F15
F16SDL_SCANCODE_F16SDLK_F16
F17SDL_SCANCODE_F17SDLK_F17
F18SDL_SCANCODE_F18SDLK_F18
F19SDL_SCANCODE_F19SDLK_F19
F2SDL_SCANCODE_F2SDLK_F2
F20SDL_SCANCODE_F20SDLK_F20
F21SDL_SCANCODE_F21SDLK_F21
F22SDL_SCANCODE_F22SDLK_F22
F23SDL_SCANCODE_F23SDLK_F23
F24SDL_SCANCODE_F24SDLK_F24
F3SDL_SCANCODE_F3SDLK_F3
F4SDL_SCANCODE_F4SDLK_F4
F5SDL_SCANCODE_F5SDLK_F5
F6SDL_SCANCODE_F6SDLK_F6
F7SDL_SCANCODE_F7SDLK_F7
F8SDL_SCANCODE_F8SDLK_F8
F9SDL_SCANCODE_F9SDLK_F9
FindSDL_SCANCODE_FINDSDLK_FIND
GSDL_SCANCODE_GSDLK_g
`
(GRAVE ACCENT and TILDE)
SDL_SCANCODE_GRAVESDLK_BACKQUOTE
HSDL_SCANCODE_HSDLK_h
HelpSDL_SCANCODE_HELPSDLK_HELP
HomeSDL_SCANCODE_HOMESDLK_HOME
ISDL_SCANCODE_ISDLK_i
Insert
(insert on PC,
help on some Mac keyboards (but does send code 73, not 117))
SDL_SCANCODE_INSERTSDLK_INSERT
JSDL_SCANCODE_JSDLK_j
KSDL_SCANCODE_KSDLK_k
KBDIllumDown
(the Keyboard Illumination Down key)
SDL_SCANCODE_KBDILLUMDOWNSDLK_KBDILLUMDOWN
KBDIllumToggle
(the Keyboard Illumination Toggle key)
SDL_SCANCODE_KBDILLUMTOGGLESDLK_KBDILLUMTOGGLE
KBDIllumUp
(the Keyboard Illumination Up key)
SDL_SCANCODE_KBDILLUMUPSDLK_KBDILLUMUP
Keypad 0
(the 0 key (numeric keypad))
SDL_SCANCODE_KP_0SDLK_KP_0
Keypad 00
(the 00 key (numeric keypad))
SDL_SCANCODE_KP_00SDLK_KP_00
Keypad 000
(the 000 key (numeric keypad))
SDL_SCANCODE_KP_000SDLK_KP_000
Keypad 1
(the 1 key (numeric keypad))
SDL_SCANCODE_KP_1SDLK_KP_1
Keypad 2
(the 2 key (numeric keypad))
SDL_SCANCODE_KP_2SDLK_KP_2
Keypad 3
(the 3 key (numeric keypad))
SDL_SCANCODE_KP_3SDLK_KP_3
Keypad 4
(the 4 key (numeric keypad))
SDL_SCANCODE_KP_4SDLK_KP_4
Keypad 5
(the 5 key (numeric keypad))
SDL_SCANCODE_KP_5SDLK_KP_5
Keypad 6
(the 6 key (numeric keypad))
SDL_SCANCODE_KP_6SDLK_KP_6
Keypad 7
(the 7 key (numeric keypad))
SDL_SCANCODE_KP_7SDLK_KP_7
Keypad 8
(the 8 key (numeric keypad))
SDL_SCANCODE_KP_8SDLK_KP_8
Keypad 9
(the 9 key (numeric keypad))
SDL_SCANCODE_KP_9SDLK_KP_9
Keypad A
(the A key (numeric keypad))
SDL_SCANCODE_KP_ASDLK_KP_A
Keypad &
(the & key (numeric keypad))
SDL_SCANCODE_KP_AMPERSANDSDLK_KP_AMPERSAND
Keypad @
(the @ key (numeric keypad))
SDL_SCANCODE_KP_ATSDLK_KP_AT
Keypad B
(the B key (numeric keypad))
SDL_SCANCODE_KP_BSDLK_KP_B
Keypad Backspace
(the Backspace key (numeric keypad))
SDL_SCANCODE_KP_BACKSPACESDLK_KP_BACKSPACE
Keypad Binary
(the Binary key (numeric keypad))
SDL_SCANCODE_KP_BINARYSDLK_KP_BINARY
Keypad C
(the C key (numeric keypad))
SDL_SCANCODE_KP_CSDLK_KP_C
Keypad Clear
(the Clear key (numeric keypad))
SDL_SCANCODE_KP_CLEARSDLK_KP_CLEAR
Keypad ClearEntry
(the Clear Entry key (numeric keypad))
SDL_SCANCODE_KP_CLEARENTRYSDLK_KP_CLEARENTRY
Keypad :
(the : key (numeric keypad))
SDL_SCANCODE_KP_COLONSDLK_KP_COLON
Keypad ,
(the Comma key (numeric keypad))
SDL_SCANCODE_KP_COMMASDLK_KP_COMMA
Keypad D
(the D key (numeric keypad))
SDL_SCANCODE_KP_DSDLK_KP_D
Keypad &&
(the && key (numeric keypad))
SDL_SCANCODE_KP_DBLAMPERSANDSDLK_KP_DBLAMPERSAND
Keypad ||
(the || key (numeric keypad))
SDL_SCANCODE_KP_DBLVERTICALBARSDLK_KP_DBLVERTICALBAR
Keypad Decimal
(the Decimal key (numeric keypad))
SDL_SCANCODE_KP_DECIMALSDLK_KP_DECIMAL
Keypad /
(the / key (numeric keypad))
SDL_SCANCODE_KP_DIVIDESDLK_KP_DIVIDE
Keypad E
(the E key (numeric keypad))
SDL_SCANCODE_KP_ESDLK_KP_E
Keypad Enter
(the Enter key (numeric keypad))
SDL_SCANCODE_KP_ENTERSDLK_KP_ENTER
Keypad =
(the = key (numeric keypad))
SDL_SCANCODE_KP_EQUALSSDLK_KP_EQUALS
Keypad = (AS400)
(the Equals AS400 key (numeric keypad))
SDL_SCANCODE_KP_EQUALSAS400SDLK_KP_EQUALSAS400
Keypad !
(the ! key (numeric keypad))
SDL_SCANCODE_KP_EXCLAMSDLK_KP_EXCLAM
Keypad F
(the F key (numeric keypad))
SDL_SCANCODE_KP_FSDLK_KP_F
Keypad >
(the Greater key (numeric keypad))
SDL_SCANCODE_KP_GREATERSDLK_KP_GREATER
Keypad #
(the # key (numeric keypad))
SDL_SCANCODE_KP_HASHSDLK_KP_HASH
Keypad Hexadecimal
(the Hexadecimal key (numeric keypad))
SDL_SCANCODE_KP_HEXADECIMALSDLK_KP_HEXADECIMAL
Keypad {
(the Left Brace key (numeric keypad))
SDL_SCANCODE_KP_LEFTBRACESDLK_KP_LEFTBRACE
Keypad (
(the Left Parenthesis key (numeric keypad))
SDL_SCANCODE_KP_LEFTPARENSDLK_KP_LEFTPAREN
Keypad <
(the Less key (numeric keypad))
SDL_SCANCODE_KP_LESSSDLK_KP_LESS
Keypad MemAdd
(the Mem Add key (numeric keypad))
SDL_SCANCODE_KP_MEMADDSDLK_KP_MEMADD
Keypad MemClear
(the Mem Clear key (numeric keypad))
SDL_SCANCODE_KP_MEMCLEARSDLK_KP_MEMCLEAR
Keypad MemDivide
(the Mem Divide key (numeric keypad))
SDL_SCANCODE_KP_MEMDIVIDESDLK_KP_MEMDIVIDE
Keypad MemMultiply
(the Mem Multiply key (numeric keypad))
SDL_SCANCODE_KP_MEMMULTIPLYSDLK_KP_MEMMULTIPLY
Keypad MemRecall
(the Mem Recall key (numeric keypad))
SDL_SCANCODE_KP_MEMRECALLSDLK_KP_MEMRECALL
Keypad MemStore
(the Mem Store key (numeric keypad))
SDL_SCANCODE_KP_MEMSTORESDLK_KP_MEMSTORE
Keypad MemSubtract
(the Mem Subtract key (numeric keypad))
SDL_SCANCODE_KP_MEMSUBTRACTSDLK_KP_MEMSUBTRACT
Keypad -
(the - key (numeric keypad))
SDL_SCANCODE_KP_MINUSSDLK_KP_MINUS
Keypad *
(the * key (numeric keypad))
SDL_SCANCODE_KP_MULTIPLYSDLK_KP_MULTIPLY
Keypad Octal
(the Octal key (numeric keypad))
SDL_SCANCODE_KP_OCTALSDLK_KP_OCTAL
Keypad %
(the Percent key (numeric keypad))
SDL_SCANCODE_KP_PERCENTSDLK_KP_PERCENT
Keypad .
(the . key (numeric keypad))
SDL_SCANCODE_KP_PERIODSDLK_KP_PERIOD
Keypad +
(the + key (numeric keypad))
SDL_SCANCODE_KP_PLUSSDLK_KP_PLUS
Keypad +/-
(the +/- key (numeric keypad))
SDL_SCANCODE_KP_PLUSMINUSSDLK_KP_PLUSMINUS
Keypad ^
(the Power key (numeric keypad))
SDL_SCANCODE_KP_POWERSDLK_KP_POWER
Keypad }
(the Right Brace key (numeric keypad))
SDL_SCANCODE_KP_RIGHTBRACESDLK_KP_RIGHTBRACE
Keypad )
(the Right Parenthesis key (numeric keypad))
SDL_SCANCODE_KP_RIGHTPARENSDLK_KP_RIGHTPAREN
Keypad Space
(the Space key (numeric keypad))
SDL_SCANCODE_KP_SPACESDLK_KP_SPACE
Keypad Tab
(the Tab key (numeric keypad))
SDL_SCANCODE_KP_TABSDLK_KP_TAB
Keypad |
(the | key (numeric keypad))
SDL_SCANCODE_KP_VERTICALBARSDLK_KP_VERTICALBAR
Keypad XOR
(the XOR key (numeric keypad))
SDL_SCANCODE_KP_XORSDLK_KP_XOR
LSDL_SCANCODE_LSDLK_l
Left Alt
(alt, option)
SDL_SCANCODE_LALTSDLK_LALT
Left CtrlSDL_SCANCODE_LCTRLSDLK_LCTRL
Left
(the Left arrow key (navigation keypad))
SDL_SCANCODE_LEFTSDLK_LEFT
[SDL_SCANCODE_LEFTBRACKETSDLK_LEFTBRACKET
Left GUI
(windows, command (apple), meta)
SDL_SCANCODE_LGUISDLK_LGUI
Left ShiftSDL_SCANCODE_LSHIFTSDLK_LSHIFT
MSDL_SCANCODE_MSDLK_m
Mail
(the Mail/eMail key)
SDL_SCANCODE_MAILSDLK_MAIL
MediaSelect
(the Media Select key)
SDL_SCANCODE_MEDIASELECTSDLK_MEDIASELECT
MenuSDL_SCANCODE_MENUSDLK_MENU
-SDL_SCANCODE_MINUSSDLK_MINUS
ModeSwitch
(I'm not sure if this is really not covered by any of the above,
but since there's a special KMOD_MODE for it I'm adding it here)
SDL_SCANCODE_MODESDLK_MODE
MuteSDL_SCANCODE_MUTESDLK_MUTE
NSDL_SCANCODE_NSDLK_n
Numlock
(the Num Lock key (PC) / the Clear key (Mac))
SDL_SCANCODE_NUMLOCKCLEARSDLK_NUMLOCKCLEAR
OSDL_SCANCODE_OSDLK_o
OperSDL_SCANCODE_OPERSDLK_OPER
OutSDL_SCANCODE_OUTSDLK_OUT
PSDL_SCANCODE_PSDLK_p
PageDownSDL_SCANCODE_PAGEDOWNSDLK_PAGEDOWN
PageUpSDL_SCANCODE_PAGEUPSDLK_PAGEUP
PasteSDL_SCANCODE_PASTESDLK_PASTE
Pause
(the Pause / Break key)
SDL_SCANCODE_PAUSESDLK_PAUSE
.SDL_SCANCODE_PERIODSDLK_PERIOD
Power
(The USB document says this is a status flag, not a physical key
- but some Mac keyboards do have a power key.)
SDL_SCANCODE_POWERSDLK_POWER
PrintScreenSDL_SCANCODE_PRINTSCREENSDLK_PRINTSCREEN
PriorSDL_SCANCODE_PRIORSDLK_PRIOR
QSDL_SCANCODE_QSDLK_q
RSDL_SCANCODE_RSDLK_r
Right Alt
(alt gr, option)
SDL_SCANCODE_RALTSDLK_RALT
Right CtrlSDL_SCANCODE_RCTRLSDLK_RCTRL
Return
(the Enter key (main keyboard))
SDL_SCANCODE_RETURNSDLK_RETURN
ReturnSDL_SCANCODE_RETURN2SDLK_RETURN2
Right GUI
(windows, command (apple), meta)
SDL_SCANCODE_RGUISDLK_RGUI
Right
(the Right arrow key (navigation keypad))
SDL_SCANCODE_RIGHTSDLK_RIGHT
]SDL_SCANCODE_RIGHTBRACKETSDLK_RIGHTBRACKET
Right ShiftSDL_SCANCODE_RSHIFTSDLK_RSHIFT
SSDL_SCANCODE_SSDLK_s
ScrollLockSDL_SCANCODE_SCROLLLOCKSDLK_SCROLLLOCK
SelectSDL_SCANCODE_SELECTSDLK_SELECT
;SDL_SCANCODE_SEMICOLONSDLK_SEMICOLON
SeparatorSDL_SCANCODE_SEPARATORSDLK_SEPARATOR
/SDL_SCANCODE_SLASHSDLK_SLASH
Sleep
(the Sleep key)
SDL_SCANCODE_SLEEPSDLK_SLEEP
Space
(the Space Bar key(s))
SDL_SCANCODE_SPACESDLK_SPACE
StopSDL_SCANCODE_STOPSDLK_STOP
SysReq
(the SysReq key)
SDL_SCANCODE_SYSREQSDLK_SYSREQ
TSDL_SCANCODE_TSDLK_t
Tab
(the Tab key)
SDL_SCANCODE_TABSDLK_TAB
ThousandsSeparator
(the Thousands Separator key)
SDL_SCANCODE_THOUSANDSSEPARATORSDLK_THOUSANDSSEPARATOR
USDL_SCANCODE_USDLK_u
UndoSDL_SCANCODE_UNDOSDLK_UNDO
"" (no name, empty string)SDL_SCANCODE_UNKNOWNSDLK_UNKNOWN
Up
(the Up arrow key (navigation keypad))
SDL_SCANCODE_UPSDLK_UP
VSDL_SCANCODE_VSDLK_v
VolumeDownSDL_SCANCODE_VOLUMEDOWNSDLK_VOLUMEDOWN
VolumeUpSDL_SCANCODE_VOLUMEUPSDLK_VOLUMEUP
WSDL_SCANCODE_WSDLK_w
WWW
(the WWW/World Wide Web key)
SDL_SCANCODE_WWWSDLK_WWW
XSDL_SCANCODE_XSDLK_x
YSDL_SCANCODE_YSDLK_y
ZSDL_SCANCODE_ZSDLK_z
&

(none)

SDLK_AMPERSAND
*

(none)

SDLK_ASTERISK
@

(none)

SDLK_AT
^

(none)

SDLK_CARET
:

(none)

SDLK_COLON
$

(none)

SDLK_DOLLAR
!

(none)

SDLK_EXCLAIM
>

(none)

SDLK_GREATER
#

(none)

SDLK_HASH
(

(none)

SDLK_LEFTPAREN
<

(none)

SDLK_LESS
%

(none)

SDLK_PERCENT
+

(none)

SDLK_PLUS
?

(none)

SDLK_QUESTION
"

(none)

SDLK_QUOTEDBL
)

(none)

SDLK_RIGHTPAREN
_

(none)

SDLK_UNDERSCORE